# INHIBIT_EXPAT=-DNO_EXPAT
LIBEXPAT=-lexpat # -lefence
-# USB may required non-standard libraries (like libusb) be installed
-# and may not be available on all OSes. Uncomment this to remove the key
-# parts of USB from the build.
-LIBUSB=-lusb
-
# Space is significant, because MSVC wants no space between switch and arg (-Fofoo.o)
# but cc/gcc does:
# $(OUTPUT_SWITCH)main.o
OPTIMIZATION=-O $(EXTRA_OPTIMIZATION)
DEBUGGING=-g $(EXTRA_DEBUGGING)
# add -DDEBUG_MEM to turn on memory allocation logging
-CFLAGS=$(EXTRA_CFLAGS) $(DEBUGGING) -Icoldsync $(INHIBIT_EXPAT) $(INHIBIT_USB) $(OPTIMIZATION)
+CFLAGS=$(EXTRA_CFLAGS) $(DEBUGGING) -Icoldsync $(INHIBIT_EXPAT) $(INHIBIT_USB) $(OPTIMIZATION) -I/sw/include
INSTALL_TARGETDIR=/usr/local/
-#OTHER_ROOT=/opt/local # For DarwinPorts on OSX
-OTHER_ROOT=/sw # Uncomment For Fink on OS X.
+# OTHER_ROOT=/opt/local # For DarwinPorts on OSX
+# OTHER_ROOT=/sw # Uncomment For Fink on OS X.
FMTS=magproto.o gpx.o geo.o mapsend.o mapsource.o garmin_tables.o \
gtm.o \
jeeps/gpsmath.o jeeps/gpsmem.o \
jeeps/gpsprot.o jeeps/gpsread.o \
jeeps/gpsrqst.o jeeps/gpssend.o jeeps/gpsserial.o jeeps/gpsutil.o \
- jeeps/gpsusbread.o jeeps/gpsusbsend.o jeeps/gpsusbstub.o $(OSJEEPS)
+ jeeps/gpsusbread.o jeeps/gpsusbsend.o $(OSJEEPS)
# Extra modules in Jeeps that we don't use
# jeeps/gpsfmt.o jeeps/gpsinput.o jeeps/gpsproj.o
#define MY_TBUF 64
#define MY_XBUF 128
-#if !HAVE_LIBEXPAT
-void
-ce_rd_init(const char *fname)
-{
- fatal(MYNAME ": This build excluded CoastalExplorer support because expat was not installed.\n");
-}
-
-void
-ce_read(void)
-{
-}
-#else
static char *element; // Current element being parsed
static char *cdatastr; // Current XML character data being built up (until a <lf>)
// Don't free the waypoint since this is done elsewhere
}
+#if !HAVE_LIBEXPAT
+void
+ce_rd_init(const char *fname)
+{
+ fatal(MYNAME ": This build excluded CoastalExplorer support because expat was not installed.\n");
+}
+
+void
+ce_read(void)
+{
+}
+#else
+
/* Start processing an XML item */
static void
ce_start(void *data, const char *el, const char **attr)
AC_MSG_CHECKING(for libusb)
if test "$with_libusb" = no ; then
AC_MSG_RESULT(check not done)
- AC_DEFINE(NO_USB, "1")
else
- AC_CHECK_LIB([usb], [usb_open])
+ AC_CHECK_PROG(LIBUSBCONFIG, libusb-config, true, false)
+ if test "$LIBUSBCONFIG" = false; then
+ AC_MSG_ERROR([libusb-config not found in $PATH])
+ fi;
+ OLDFLAGS=$LDFLAGS
+ OCFLAGS=$CFLAGS
+ LDFLAGS="$LDFLAGS `libusb-config --libs`"
+ CFLAGS="$OCFLAGS `libusb-config --cflags`"
+
+ AC_CHECK_LIB([usb], [usb_interrupt_read],
+ [USB_FLAGS="`libusb-config --cflags`"]
+ [LDFLAGS="$LDFLAGS `libusb-config --libs`"],
+ [AC_MSG_ERROR([libusb >= 0.1.8 is needed])]
+ )
+ CFLAGS="$OCFLAGS"
+ LIBS="$LIBS `libusb-config --libs`"
+ AC_CHECK_LIB([usb], [usb_interrupt_read])
fi
AC_MSG_CHECKING(for random stuff to make you feel better)
if test "$with_libexpat" = no ; then
AC_MSG_RESULT(check not done)
else
- AC_CHECK_LIB([expat], [XML_ParserCreate])
+# AC_CHECK_LIB([expat], [XML_ParserCreate])
+ AC_CHECK_LIB(expat, XML_ParserCreate, EXPAT_LIB="-lexpat",
+ AC_CHECK_LIB(expat, XML_ParserCreate, EXPAT_LIB="-lexpat", [], "-L/sw/lib -I/sw/include"), "-L/sw/lib -I/sw/include")
+ AC_CHECK_LIB(expat, XML_ParserCreate)
fi
# Checks for header files.
# doc/Makefile
# mingw/Makefile])
AC_CONFIG_FILES([Makefile])
-# AC_CONFIG_HEADER(config.h)
AC_OUTPUT
#define ATTR_SHIPNAME "shpnam"
static void readVersion4( FILE* pFile);
+static void getAttr(const char *data, const char *attr, char **val, char seperator);
static FILE *fd;
static FILE *ofd;
memset(cdatastr,0, MY_CBUF);
}
-static void getAttr(const char *data, const char *attr, char **val, char seperator)
-{
- char *start;
- if ((start = strstr(data, attr)) != NULL)
- {
- char *end;
- int len;
-
- end = strchr(start, seperator);
- if (end == NULL)
- {
- end = start + strlen(start);//assume we are teh last attr
- }
-
- len = end-start - strlen(attr);
-
- *val = xcalloc(len+1, 1);
- memcpy(*val, start+strlen(attr), len);
- (*val)[len] = '\0';
- }
- else
- {
- *val = xcalloc(1, 1);
- (*val)[0] = '\0';
- }
-}
-
static void
hsa_ndv_end(void *data, const char *el)
{
#endif
+static void getAttr(const char *data, const char *attr, char **val, char seperator)
+{
+ char *start;
+ if ((start = strstr(data, attr)) != NULL)
+ {
+ char *end;
+ int len;
+
+ end = strchr(start, seperator);
+ if (end == NULL)
+ {
+ end = start + strlen(start);//assume we are teh last attr
+ }
+
+ len = end-start - strlen(attr);
+
+ *val = xcalloc(len+1, 1);
+ memcpy(*val, start+strlen(attr), len);
+ (*val)[len] = '\0';
+ }
+ else
+ {
+ *val = xcalloc(1, 1);
+ (*val)[0] = '\0';
+ }
+}
static void
hsa_ndv_rd_deinit(void)
{
ARG_TERMINATOR
};
-static xg_callback ignr_start;
-static xg_callback ignr_nb_etapes, ignr_descr;
-static xg_callback ignr_etape_begin, ignr_etape_end;
-static xg_callback ignr_etape_pos, ignr_etape_alt;
-
-static
-xg_tag_mapping ignr_xml_map[] =
-{
- { ignr_start, cb_start, "/RANDONNEE" },
- { ignr_nb_etapes, cb_cdata, "/RANDONNEE/INFORMATIONS/NB_ETAPES" },
- { ignr_descr, cb_cdata, "/RANDONNEE/INFORMATIONS/DESCRIPTION" },
- { ignr_etape_begin, cb_start, "/RANDONNEE/ETAPE" },
- { ignr_etape_end, cb_end, "/RANDONNEE/ETAPE" },
- { ignr_etape_pos, cb_cdata, "/RANDONNEE/ETAPE/POSITION" },
- { ignr_etape_alt, cb_cdata, "/RANDONNEE/ETAPE/ALTITUDE" },
- { NULL, 0, NULL }
-};
-
#if ! HAVE_LIBEXPAT
static void
#else
+
+static xg_callback ignr_start;
+static xg_callback ignr_nb_etapes, ignr_descr;
+static xg_callback ignr_etape_begin, ignr_etape_end;
+static xg_callback ignr_etape_pos, ignr_etape_alt;
+
+static
+xg_tag_mapping ignr_xml_map[] =
+{
+ { ignr_start, cb_start, "/RANDONNEE" },
+ { ignr_nb_etapes, cb_cdata, "/RANDONNEE/INFORMATIONS/NB_ETAPES" },
+ { ignr_descr, cb_cdata, "/RANDONNEE/INFORMATIONS/DESCRIPTION" },
+ { ignr_etape_begin, cb_start, "/RANDONNEE/ETAPE" },
+ { ignr_etape_end, cb_end, "/RANDONNEE/ETAPE" },
+ { ignr_etape_pos, cb_cdata, "/RANDONNEE/ETAPE/POSITION" },
+ { ignr_etape_alt, cb_cdata, "/RANDONNEE/ETAPE/ALTITUDE" },
+ { NULL, 0, NULL }
+};
+
static void
ignr_xml_error(int condition)
{
#include <stdio.h>
#include <ctype.h>
-#include <usb.h>
#include "../config.h"
+#if HAVE_LIBUSB
+#include <usb.h>
#include "gps.h"
#include "garminusb.h"
fatal("Found no Garmin USB devices.\n");
}
}
+#endif /* HAVE_LIBUSB */
*/
-#if NO_USB
#include "garminusb.h"
+#if !HAVE_LIBUSB
const char no_usb[] = "USB suport is not available in this build.\n";
int